﻿using System;
using System.Collections.Generic;
using CMS.Core.Domain;
using System.Collections;

namespace CMS.Core.DataInterfaces
{
    /// <summary>
    /// Since this extends the <see cref="IDao{TypeOfListItem, IdT}" /> behavior, it's a good idea to 
    /// place it in its own file for manageability.  In this way, it can grow further without
    /// cluttering up <see cref="IDaoFactory" />.
    /// </summary>
    public interface ITiepDanDao : IDao<TiepDan, System.Int32>
    {
        /// <summary>
        /// Tìm kiếm danh sách tiếp công dân thỏa mãn điều kiện tìm kiếm
        /// </summary>
        /// <returns></returns>
        IList SearchTiepDans(String type, String txtTuNgay, String txtDenNgay, int maDiaBan,
                            int maLinhVuc, int maLoaiHinh, int min, int max);

        /// <summary>
        /// Đếm tổng số tiếp dân thỏa mãn điều kiện tìm kiếm
        /// </summary>
        /// <returns></returns>
        int TotalSearchTiepDans(String type, String txtTuNgay, String txtDenNgay, int maDiaBan,
                            int maLinhVuc, int maLoaiHinh);

        /// <summary>
        /// Tìm kiếm danh sách tiếp công dân thỏa mãn điều kiện tìm kiếm
        /// </summary>
        /// <returns></returns>
        IList SearchTiepDans(String type, String txtTuNgay, String txtDenNgay, int maDiaBan,
                            int maLinhVuc, int maLoaiHinh, string txt1, string txt2, string txt3, string txt4,
                            int minSoThuLy, int maxSoThuLy, int min, int max);

        /// <summary>
        /// Đếm tổng số tiếp dân thỏa mãn điều kiện tìm kiếm
        /// </summary>
        /// <returns></returns>
        int TotalSearchTiepDans(String type, String txtTuNgay, String txtDenNgay, int maDiaBan,
                            int maLinhVuc, int maLoaiHinh, string txt1, string txt2, string txt3, string txt4,
                            int minSoThuLy, int maxSoThuLy);


        /// <summary>
        /// Trả về số thụ lý cao nhất
        /// </summary>
        /// <returns></returns>
        int GetMaxSoThuLy();
    }
}
